package com.ruoyi.zhgd.service;

import com.ruoyi.zhgd.domain.NAsphaltMatchHot;
import com.ruoyi.zhgd.domain.vo.NAsphaltMatchHotVo;
import com.ruoyi.zhgd.domain.bo.NAsphaltMatchHotBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 热料配置表Service接口
 *
 * @author tll
 * @date 2023-10-12
 */
public interface INAsphaltMatchHotService {

    /**
     * 查询热料配置表
     */
    NAsphaltMatchHotVo queryById(String id);

    /**
     * 查询热料配置表列表
     */
    TableDataInfo<NAsphaltMatchHotVo> queryPageList(NAsphaltMatchHotBo bo, PageQuery pageQuery);

    /**
     * 查询热料配置表列表
     */
    List<NAsphaltMatchHotVo> queryList(NAsphaltMatchHotBo bo);

    /**
     * 新增热料配置表
     */
    Boolean insertByBo(NAsphaltMatchHotBo bo);

    /**
     * 修改热料配置表
     */
    Boolean updateByBo(NAsphaltMatchHotBo bo);

    /**
     * 校验并批量删除热料配置表信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    /**
     * 获取目标级配数据
     * @param matchId 配比主键
     * @return 配比主键
     */
    Map<String, Double> getTargetMap(String matchId);

    /**
     * 获取指定生产级配热料筛分级配列表
     * @param matchId
     * @return
     */
    List<NAsphaltMatchHot> matchList(String matchId);

    /**
     * 添加配比热料筛分级配
     * @param list
     * @param matchId
     */
    void save(List<NAsphaltMatchHot> list, String matchId);
}
